iVX创始人孟智平:低代码平台太乱,“通用无代码”才是方向
引子:国外大厂创造“风口”,国内企业追赶“风口”。自从有了“低代码/无代码”的概念,国内几乎所有大厂和无数创业公司都在搞“低代码”产品开发,国内至少有上百家。这里面大部分产品“高度同质化”,有些大厂做做觉得没意思,开源了。多数创业公司,还在这条赛道(风口)上艰难前行...未来的几年会更加困难。
本文希望给出一些新的产品思路给大家参考,走出一条有特色和价值的产品之路。iVX是一款非常“特殊”的产品,看似和市面上所有低代码/无代码产品都不一样,有好像具备“低代码/无代码”的特征。因此,进行了深度分析。
一直以来,企业想开发应用程序,无非就是这些途径:内部组件开发团队从零开始,或把需求转给第三方开发公司,或者从外部供应商购买现成的软件。随着 IT 技术的发展,低代码和无代码开发平台方案逐渐进入人们视野,为企业应用程序提供了新途径。
什么是低代码开发平台(Low-Code Development Platform)?
低代码是一种使用直观的图形工具和嵌入式功能设计和开发应用程序的方法,可减少传统或人工代码编写要求。人工代码编写仍然是开发过程的一部分,但低代码开发简化了人工代码的工作,帮助用户快速开始创建应用。
什么是无代码开发平台(No-Code Development Platform)?
无代码是一种与低代码类似的开发软件的方法,与低代码不一样的是,无代码并不需要编写任何一行代码,通过模块和工具就能进行应用程序开发,从而可以更快的开发。
低代码/无代码产品区别
根据《爱分析-低代码厂商全景报告》将这些平台大致分为三类:
一、低代码应用开发平台
代表产品:Mendix/Outsystems/活字格/ClickPaaS/牛刀...
用户:程序员
使用场景:程序员在开发过程中,降低应用开发过程中编码量,并便于维护。
产品特点:
1 自带IDE,并能生成源代码;
2 能够无代码表示大部分的逻辑;(通常需要代码辅助)
能力核心要点:
1、不写代码能做什么?(通常和前后台“逻辑编排能力”以及“组件分层架构”等相关)
2、任意独立部署的代码?(例如Mendix可以生成但会打包成mpk,需要在他们自己的环境下部署)
3、前端的灵活性?支撑系统和场景?(是否数据驱动?是否适合所有应用前端交互要求?全系统?全场景支持?)
4、后台功能组件化与性能?(后台IaaS/PaaS组件化程度?高并发应用?)
5、和现有系统整合能力?(API整合?数据库整合?代码整合?)
6、微服务/数据的安全和访问控制?(能针对字段进行权限管理?微服务权限管理?)
(本文只客观阐述各产品特点,大家可结合产品特点自行评估。)
二、无代码应用搭建平台
代表产品:宜搭/明道/轻流/简道...
用户:业务人员(主要是给业务,在需求无法满足时给研发进行定制开发)
使用场景:业务人员通过现有SaaS模版搭建特定场景的应用,给自己或他人使用
产品特点:
1、产品由多个SaaS模版(模型)组成,模型具有一定灵活性,操作简单,可以快速搭建特定场景下典型应用;常见为“BPM工作流/Bi/在线表格/表单引擎等”;
2、已经被定义好的“用户权限/角色管理”;
3、运行应用需要安装全套系统;通常叫做aPaaS。
能力核心要点:
1 特定场景数量(模型数量)?模型本身的灵活性(可配置能力)?
2 模型之间的数据和接口打通?
3 模型的二次开发能力?
三、通用无代码开发平台
代表产品:iVX
用户:“新”程序员(想学习快速编程的人,而且对代码能力无要求)
使用场景:一种新的编程模式“鼠标编程”,不用写代码;
学习快数倍(相比代码编程);研发/运维快数倍。
产品特点:
1、自带通用无代码开发IDE,和“写代码”关系是“充分非必要”,你可以将前后台以及SQL代码嵌入系统,但是完全不写也可以;
2、基于“事件面板”的逻辑表达,实现前后台逻辑表达一致性和“图灵完备”;
3、组件分层合理充分(三层,类似“氨基酸/蛋白质/细胞”的关系)。
能力核心要点:
其实主要就是解决了“低代码应用开发平台”现存的一些问题,并通过无代码的方式加以实现。下面会详细讲述iVX产品的一些核心要点。
iVX为什么可以实现“通用无代码”——产品逻辑是什么?
技术底层的实现方式,这里就不展开讲了,但是从产品形态上,iVX为什么可以实现“通用无代码”,倒是可以仔细分析一下。
要实现“通用无代码”首先要有IDE,如果没有IDE是不可能实现的,而IDE本身就是一个需要反复迭代的复杂工程,除去IDE的整合工具环境不谈,还有两个非常重要的因素使得iVX成为几乎唯一的“通用无代码”平台。
一、逻辑的无代码表达
基于对国内外各知名低代码开发平台的分析,要想编码减少而功能不变,最核心的就是“那些代码逻辑”如何通过“非代码”的方式来表达。现在大部分都是通过图形化的方式。这一点几乎所有平台都是绕不过的,没有灵活的逻辑,应用的各种功能几乎是无法实现的。哪怕只是特定场景的开发,也会受到很大限制。
现阶段几种常见的逻辑表达方式如下,供大家参考。
1、流程图模式(代表产品Mendix/Outsystems)
从上图可以看出如果是“顺序或分支”这样的逻辑,不太复杂的情况下,还是可以清晰表达的,但是对于复杂逻辑(例如循环)或者在一个范围内比较复杂,例如上几十个上百个节点和对象操作,就会非常困难了。设计这个图本身就很麻烦,由于本身2D和范围的限制,如果出现对象或线段重合,就很难开发和维护了。
复杂业务流程图
还有一种视图和流程图很相似,如上图所示,这种模式经常会用来表达“数据流”或者“函数”之间的调用关系。但是对于“循环”“回调”和复杂逻辑表达都存在不小限制。甚至表达起来可能比写代码还要麻烦(因为还要设计和画图)。
2、面向过程的Scratch模式(代表产品Thunkable.com,刚完成一笔融资)
这种逻辑表达方式就和现在“儿童编程”常用软件Scratch非常接近了,把组件和语法都变成不同颜色和形状的“块”,然后拖拽到逻辑编辑面板。
这种方式核心问题在于虽然“趣味性强”但是“效率不高”。每个模块(包括语法块和组件块)都需要拖拽到特定位置、对其、插入然后配置,整个操作过程效率很低,而且很多函数都需要单独配置(例如上图“get value from”)。
总结起来就是,这种拖拽式“模块”化编程,还是有特定语法的(通过几十个语法块来表达),虽然逻辑上是完备的,但是效率在实践过程中非常低,而且也很难完成中大型应用的开发。
3、iVX的逻辑编辑面板模式(iVX特有)
前端逻辑定义示例
在面板中可以添加“动作”“条件”“循环”“回调”四种节点,首先保证“逻辑上图灵完备”,也就是说所有的“前后台逻辑”都“拼”得出来。
另外,模块可以线性向下增加,使得整个逻辑添加过程是“线性的”,保证了再多的逻辑,都可以装的下。
在操作上“鼠标编程”完全替代了“键盘编程”过程。平均一次有效操作(1复杂度),可以生成500~800行代码,加上组件和逻辑的重用机制,开发效率提升5倍以上。
函数(在iVX中叫动作组)、后台逻辑也复用这个逻辑表达面板,整个过程几乎用不到语法,只需要“逻辑”本身。
后台逻辑定义示例
这种逻辑上表达的优势,使得iVX从逻辑侧为“通用无代码”编程提供了可能。
二、组件的分层架构
1、三层的组件架构保证了iVX的功能和灵活性
氨基酸->蛋白质->细胞
iVX组件的分层架构设计思路与上图生物氨基酸-蛋白质-细胞的结构相似。这是生物最基础、最核心的部分,是保证生物进化的多样性和适应能力。
iVX中组件按颗粒规模将划分为三层:
最底层是原子组件,是最小颗粒度的,抽象度高,是非常通用的基础组件;
中间层是中颗粒度的自定义组件,支持开发者自行设计、上传和交易; 最上层是大颗粒度的小模块,开发者可将已完成的通用功能进行封装,可复用或交易;iVX分层的组件架构提供包括的原子组件、自定义组件和小模块三种不同颗粒度的组件,就像氨基酸、蛋白质、细胞的关系,更方便开发者去构造各类应用。
原子级组件
自定义组件
小模块封装
2、iVX的组件包含多种“变量”组件
有了变量,就可以完成“赋值”和多种计算,而且这种计算还是可视化的。在所有的知名“低代码/无代码”产品中,只有iVX是拥有变量的,包括“数值变量”“文本变量”“布尔变量”“时间变量”“一维数组”“二维数组”“对象变量”“对象数组”“通用变量”等。这些变量前后台都有,也正是这些变量的组件化,保证了逻辑面板可以实现较为复杂的算法和运算。
3、iVX的组件是前后台分离的
绝大部分的低代码IDE,只有组件的概念,甚至都没有实现前后台分离。在产品的开发过程中,很难实现前后分离和多人开发。iVX在4.0版本时候,就已经实现了前后台组件分离,这对于较复杂的应用的研发和管理也带来了不少帮助。
以上“基于逻辑面板的逻辑无代码表达”和“三层结构的组件划分”,从产品逻辑上保证了“通用无代码”成为可能。
iVX产品介绍
iVX平台定位为面向新一代全栈开发人员设计的“通用无代码开发平台”,提供了云端的开发编译环境(IDE)、自研的可视化编程语言(含自定义AST抽象语法树)、分层式的组件架构、应用多端发布机制、源码导出部署功能、团队协作开发、应用云托管和版本管理工具等。使用者在浏览器中通过鼠标拖拽和点击配置方式开发各类应用,包括:
网页端应用(兼容主流浏览器)
移动端应用(iOS/Android)
桌面端应用(Windows/MacOS/Linux)
各平台小程序(微信/阿里系/抖音)较代码编程方式,iVX具有快速学习、快速开发、快速运行和快速维护的优势,使用者无论是否有开发经验,短期学习后都能使用iVX中独立开发应用。
iVX对比代码编程
可视化UI搭建
在开发过程中,iVX提供了一个类似于PS的软件界面,左侧的组件栏和中间的舞台可以帮助开发者快速的搭建出一个想要的界面效果。
前后端分离开发
在后台部分,开发者可以自行创建数据库、服务、接口和加密数据等。此外,iVX支持单独开发前端应用和后台服务,以及支持与第三方前端和后台的对接,根据需求灵活开发。
事件/服务逻辑
前后台的事件交互、数据处理等逻辑部分都是通过下图的线性可视化配置方式完成,不同于流程图或者scratch积木式,这种方式更贴近中文语义和代码编程思维。
前后台逻辑开发
程序员友好
此外, iVX是一个对程序员友好的平台,程序员可以编写“插件/CSS/SQL语句/JS函数”,接入外部系统、数据库、自定义组件库,甚至将Java SDK/Android SDK/JS SDK上传到平台和iVX生成代码片段一起运行。因此,对于有编程技术的团队和个人,可以在原有编程基础上,结合iVX无代码技术使用,以提高传统开发模式的效率。
自定义函数
发布和私有部署
iVX应用默认托管于平台服务器上,可直接运行使用,并按实际云计算消耗情况进行扣费。在此基础上,iVX平台还提供应用私有导出部署功能,支持将应用代码导出,部署至自己的服务器。开发者可以选择仅导出前端代码,或前后台代码一起导出。应用导出之后,再根据自身的实际需求,将应用部署至一个单独的服务器,或分布式部署至多个服务器或容器(docker),也可以选择性的接入第三方云服务,包括CDN,对象存储(OSS/S3),云数据库(RDS)等等,这样强大的代码生成和部署能力,在其它低代码/无代码平台几乎不存在。
导出私有部署
“通用无代码”确实是一个值得深入探索的方向,更底层也更接近编程语言,也算是“鼠标编程”(而不是键盘)的一种有益尝试。再过些年,是否需要键盘来编程,还真不好说,毕竟“Programming”和“Coding”压根儿就是两个单词。
还有一点仓颉是不是中文编程我不知道,但是iVX肯定是中文的。现在IDE和教程都是完全免费的,大家可以尝试学一下试试。
扫码免费参与ivx初级工程师培训
- END -
大佬观点
Mendix-王炯 | Mendix-阮铭 | 微软-李威 | 微软-徐玉涛 | 葡萄城-宁伟 | SAP-陈泽平 | 华为-周明旺 | 华为云-董鑫武 | 钉钉宜搭-邵磊 | 轻流-严琦东 | 腾讯云微搭-骆勤
用友-刘鑫 | 数睿数据-张超 | 奥哲-朱鹏喜 | 炎黄盈动-汤武 | 网易数帆-李雯燕 | 普元信息-孟庆余 | 得帆-李健达
Treelab-何浚炫 | 阿里-汪凤震 | 明道云-薛晨 | 上海斯歌-傅正斌